package hotel.callback.oversea.task;//package hotel.callback.oversea.task;
//
//import hotel.base.oversea.constant.CommonConstants;
//import hotel.base.oversea.constant.MeituanConstants;
//import hotel.base.oversea.constant.enums.MtGoodsEnums;
//import hotel.base.oversea.utils.DateUtil;
//import hotel.base.oversea.utils.GsonUtils;
//import hotel.base.oversea.utils.Result;
//import hotel.base.oversea.utils.StringUtil;
//import hotel.base.oversea.vo.BatchPushRoomDatasVo;
//import hotel.base.oversea.vo.RoomDataEntityVO;
//import hotel.base.oversea.vo.RoomStatusInventory;
//import hotel.base.oversea.vo.meituan.request.goods.MtHotelGoodsStatusDetailStateVo;
//import hotel.base.oversea.vo.meituan.request.goods.MtHotelGoodsStatusDetailVo;
//import hotel.callback.oversea.config.service.RedisService;
//import hotel.callback.oversea.mapper.MtHotelGoodsNotRepeatMapper;
//import hotel.callback.oversea.mapper.MtNotifyShortLogMapper;
//import hotel.callback.oversea.service.MtHotelGoodsService;
//import hotel.callback.oversea.vo.meituan.MtHotelGoodsStatusVo;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.scheduling.annotation.Async;
//import org.springframework.stereotype.Component;
//import org.springframework.util.ObjectUtils;
//import org.springframework.web.client.RestTemplate;
//
//import java.math.BigDecimal;
//import java.util.*;
//
//
//@Slf4j
//@Component
//public class MeituanPartTimeQueryStatusTask {
//    private String timestamp = "mcohgdt"+String.valueOf(System.currentTimeMillis());
//    @Autowired
//    private MtNotifyShortLogMapper mtNotifyShortLogMapper;
//    @Autowired
//    private MtHotelGoodsNotRepeatMapper mtHotelGoodsNotRepeatMapper;
//    @Autowired
//    private RedisService redisService;
//    @Autowired
//    private RedisTemplate redisTemplate;
//    @Autowired
//    private MtHotelGoodsService mtHotelGoodsService;
//    @Autowired
//    private RestTemplate restTemplate;
//    private void setTimestamp(String timestamp){
//        this.timestamp = timestamp;
//    }
//    @Async("threadPoolSt")
//    public void executeCheckOneHotelGoods(String hotelId,String timestamp){
//        log.info("MeituanPartTimeQueryStatusTask {} >>>>>>>>> 异步线程 节点定时器查询房态task  开始执行时间：{}",timestamp, DateUtil.getNowTime());
//        setTimestamp(timestamp);
//
//        //主动查询房态（房态包含库存短时间查询接口限制）
//        queryRoomStatusByOneHotelId(hotelId);
//
//        log.info("MeituanPartTimeQueryStatusTask {} >>>>>>>>> 异步线程 节点定时器查询房态task  执行结束时间：{}",timestamp, DateUtil.getNowTime());
//
//
//    }
//
//    /**
//     * 主动查询房态接口（包含库存接口）
//     */
//    private void queryRoomStatusByOneHotelId(String hotelId) {
//        //log.info("进入 queryRoomStatusByOneHotelId hotelId={}",hotelId);
//
//        log.info("queryRoomStatusByOneHotelId酒店={}",hotelId);
//        Map<Integer,Integer> valiSaleAllGoodsMap = new HashMap();//key = goodsId,vallue=goodsId  组装集合放置所有校验后有效的产品（因为存在某产品无价格变化但有状态变化需处理）
//        Date nowDate = new Date();
//        Integer difDays = mtHotelGoodsService.getDaysCommonBaseSet();
//        String nowHourStr = DateUtil.formatDate(nowDate,"HH");
//        String yestoday = DateUtil.formatDate(DateUtil.addDay(nowDate,-1),"yyyy-MM-dd");
//        String endDate = DateUtil.formatDate(DateUtil.addDay(nowDate,difDays),"yyyy-MM-dd");
//        if(null != redisService.get("query_status_time_days_endDate")){
//            endDate = (String)redisService.get("query_status_time_days_endDate");
//        }
//
//        //1、调用美团房态接口，日历房态接口,默认全日房 （根据时间段数据返回）
//        //version  2020-08-26 2:21  mf   DateUtil.getFontsDay 提前一天的房态价格也要更新 用户凌晨可以买前一天至今天中午的房间
//        String startDateRoomStatus = DateUtil.formatDate(nowDate,"yyyy-MM-dd");
//        String nowStr = DateUtil.formatDate(nowDate,"yyyy-MM-dd HH");
//        if(Integer.valueOf(nowStr.split(" ")[1])<6){
//            startDateRoomStatus = DateUtil.getFontsDay(startDateRoomStatus);
//        }
//
//
//        Map<String, MtHotelGoodsStatusDetailVo> allChangeGoodsAboutStatusMap = new HashMap<>();//当前酒店所有的产品的房态信息  key = goodsId,value=status对象信息包含status集合
//        Result<Object> statusResponse = mtHotelGoodsService.getMtHotelGoodsStatus(Long.valueOf(hotelId),startDateRoomStatus,endDate, MtGoodsEnums.roomDateTypeEnum.DAY.getCode(),"not_save");//调用该方法包含了保存日志
//        log.info("MeituanPartTimeQueryStatusTask hotelId={},statusResponse={}",hotelId,GsonUtils.GsonString(statusResponse));
//        /*Boolean existSaleHotel = redisService.isMember(CommonConstants.SWITCH_SALE_HOTEL_TO_PRICE_LIST,Integer.valueOf(hotelId));
//        if(existSaleHotel){
//            log.info("MeituanPartTimeQueryStatusTask 不是上架酒店 hotelId={}",hotelId);
//            return;
//        }*/
//        if(null != statusResponse && statusResponse.getCode()== CommonConstants.SUCCESS && null != statusResponse.getData()){
//            Long thisTimestamp = System.currentTimeMillis();
//            String thisTimestampApi = StringUtil.getTimestampRandom(thisTimestamp).toString()+String.valueOf(hotelId).substring(0,4)+String.valueOf(21);
//            MtHotelGoodsStatusVo mtHotelGoodsStatusVo = (MtHotelGoodsStatusVo) statusResponse.getData();
//            List<MtHotelGoodsStatusDetailVo> thisHotelAllGoodsStatuses = mtHotelGoodsStatusVo.getGoodsStatuses();
//            Map<String,Map<String,String>> thisHotelAllGoodsDateNotSaleMap = new HashMap<>();
//            Integer compare = 0;
//            if(null != thisHotelAllGoodsStatuses && thisHotelAllGoodsStatuses.size()>0){
//                for (MtHotelGoodsStatusDetailVo v:thisHotelAllGoodsStatuses){
//                    Map<String,String> thisHotelOneGoodsOneDateNotSaleMap = new HashMap<>();
//                    //判断该产品是否为我们的上架产品，是才需要查询比对价格
//                    String existSale = null;//(String)redisService.get(CommonConstants.SWITCH_SELLING_THE_HOUSE_TYPE+String.valueOf(hotelId)+"_"+v.getGoodsId());
//
//                    existSale = (String)redisService.hmGet(CommonConstants.SWITCH_SELLING_THE_HOUSE_TYPE,hotelId+"_"+v.getGoodsId());
//                    if(!ObjectUtils.isEmpty(existSale)){
//                        log.info("MeituanPartTimeQueryPriceTask 进入第二版 判断上架产品：thisGoodsId={},existSale={}",v.getGoodsId(),existSale);
//                    }else{
//                        existSale = (String)redisService.get(CommonConstants.SWITCH_SELLING_THE_HOUSE_TYPE+hotelId+"_"+v.getGoodsId());
//                        log.info("MeituanPartTimeQueryPriceTask 进入第一版 判断上架产品：thisGoodsId={},existSale={}",v.getGoodsId(),existSale);
//                    }
//
//                    if(null != existSale){
//                        log.info("MeituanPartTimeQueryStatusTask 匹配到 existSale={}",existSale);
//                        //重构 对象  v
//                        //判断存在变化的产品的 日期房态
//                        List<MtHotelGoodsStatusDetailStateVo>  thisGoodsAllDateState = v.getGoodsStatuses();
//                        if(null != thisGoodsAllDateState && thisGoodsAllDateState.size()>0){
////                            String thisKey = mtHotelGoodsStatusVo.getHotelId()+"_"+v.getGoodsId();
//                            Integer goodsId = v.getGoodsId();
////                            String thisGoodsAllDateStateJSONStrNew = GsonUtils.GsonString(thisGoodsAllDateState);
////                            String thisGoodsAllDateStateJSONStrHistory = (String)redisTemplate.opsForValue().get(CallbackConstants.REDIS_ROW_GOODS_STATUS_CHECK+thisKey);
////                            boolean checkHistory = true;
////                            if(null != redisTemplate.opsForValue().get(CallbackConstants.REDIS_KEY_NOT_CHECK_FOR_STATUS) || null != redisTemplate.opsForValue().get(CallbackConstants.REDIS_KEY_NOT_CHECK_FOR_ALL)){
////                                checkHistory =false;
////                                log.info("statusCheckThisHotel当前不校验酒店产品json串历史值酒店={}",hotelId);
////                            }
//                            boolean notHistoryExisChange = true;
////                            if(checkHistory){
////                                if(null != thisGoodsAllDateStateJSONStrHistory && thisGoodsAllDateStateJSONStrHistory.equals(thisGoodsAllDateStateJSONStrNew)){
////                                    notHistoryExisChange = false;
////                                }
////                            }
////                            if(null != redisService.get("sw_not_check_status_history_json")){//目前默认不校验历史json窜
////                                notHistoryExisChange = true;
////                            }
//                            if(notHistoryExisChange){//不是推送过的 存在了变化
//                                //log.info("主动查询-美团接口-校验酒店产品 {} getChangeMonthGoodsIdsByOneHotelId thisGoodsAllDateState hotel_goodsId={},初步判断发生房态变化",timestamp,thisKey);
//                                //没有缓存则当作发生房态变化 推全部，，，或者有但是与上次不一样则存在部分变化日期房态
//
//                                //redisTemplate.opsForValue().set(CallbackConstants.REDIS_ROW_GOODS_STATUS_CHECK+thisKey,thisGoodsAllDateStateJSONStrNew,30, TimeUnit.MINUTES);
//
//                                List<MtHotelGoodsStatusDetailStateVo>  thisGoodsMonthChangeDateStateNew = new ArrayList<>();
//                                if(null != thisGoodsAllDateState){
//
//                                    log.info("checkMtGoodsChange酒店={},thisGoodsAllDateState={}",hotelId,thisGoodsAllDateState.size());
//
//                                    for (MtHotelGoodsStatusDetailStateVo s:thisGoodsAllDateState){
//                                        Integer state = s.getStatus();
//                                        String date = s.getDate();
//
//                                        Boolean isChange = mtHotelGoodsService.checkMtGoodsChange(nowHourStr,yestoday,hotelId,goodsId,date,state,"room_status","2",null,thisTimestampApi);
//                                        if(isChange){
//                                            //log.info("校验返回存在房态变化{}，一个产品一个日期价格发生变化房态产品信息为{}",timestamp,thisKey+"_"+date+"_"+state+",");
//                                            //该产品该日期的状态发送改变，重构数据
//                                            thisGoodsMonthChangeDateStateNew.add(s);
//
//                                            thisHotelOneGoodsOneDateNotSaleMap.put(date,String.valueOf(state));
//                                            log.info("thisTimestampApi={} checkMtGoodsChange通过了校验酒店={},goodsId={}",thisTimestampApi,hotelId,goodsId);
//
//                                            if(BigDecimal.valueOf(state).compareTo(BigDecimal.valueOf(1))!=0){
//                                                log.info("主动房态不可预订推送thisHotelCompare=1hotelId={},goodsId={},date={}",hotelId,goodsId,date);
//                                                compare = 1;
//                                            }
//
//                                        }else{
//                                            log.info("checkMtGoodsChange没有通过校验酒店={},goodsId={}",hotelId,goodsId);
//                                        }
//
//                                    }
//                                    //log.info("///////////////////////主动查询-美团接口-校验酒店产品 {} 一个产品所有日期房态有变化产品房态thisGoodsMonthChangeDateStateNewhotelId={},thisGoodsMonthChangeDateStateNew={}",timestamp,hotelId,thisGoodsMonthChangeDateStateNew);
//                                    if(thisGoodsMonthChangeDateStateNew.size()>0){
//
//                                        thisHotelAllGoodsDateNotSaleMap.put(String.valueOf(v.getGoodsId()),thisHotelOneGoodsOneDateNotSaleMap);
//
//                                        //遍历完当前产品的31天房态,存在变动
//                                        v.setGoodsStatuses(thisGoodsMonthChangeDateStateNew);//重构数据
//                                        //log.info("///////////////////////主动查询-美团接口-校验酒店产品 {} 一个产品的所有日期房态存在变化产品房态追加hotelId={},thisGoodsMonthChangeDateStateNewToallChangeGoodsAboutStatusMap={}",timestamp,hotelId,v);
//                                        allChangeGoodsAboutStatusMap.put(String.valueOf(v.getGoodsId()),v);
//                                        valiSaleAllGoodsMap.put(v.getGoodsId(),v.getGoodsId());
//
//                                    }
//                                }
//                            }else{
//                                log.info("statusCheckThisHotel酒店该产品未来30天datajson串与上一次一样当前不进入房态变化校验酒店={}",hotelId);
//                            }
//                        }
//                    }
//                }
//            }else{
//                log.error("该酒店查询不到房态信息酒店id={},statusResponse={},startDateRoomStatus={},enddate={}",hotelId, GsonUtils.GsonString(statusResponse),startDateRoomStatus,endDate);
//                //发起请求
//                /*Map map = new HashMap();
//                map.put("mtHotelId",hotelId);
//                map.put("status","0");//状态 0 下线 1 上线
//                Result result = RestTemplateUtils.post(CommonUrlConstants.SWITCHS_HOST+"/switchCreateRoom/downHotel",JSON.toJSONString(map),restTemplate);
//                if(result.getCode()!= CommonConstants.SUCCESS){
//                    SendUtils.dingMsg("[CALLBACK-HOTEL-STATUS-NONE]主动查询，酒店下线了，调用携程修改接口失败 ","请求参数："+JSON.toJSONString(map)+" 响应："+JSON.toJSONString(result),MessageEnums.genre.GOODS_STATUS_AND_PRICE.getCode(),restTemplate);
//                }else{
//                    SendUtils.dingMsg("[CALLBACK-HOTEL-STATUS-NONE]主动查询，酒店下线了 ","请求参数："+JSON.toJSONString(map),MessageEnums.genre.GOODS_STATUS_AND_PRICE.getCode(),restTemplate);
//                    log.info("requestSwitchsUpdateHotel响应="+JSON.toJSONString(result)+",请求参数："+JSON.toJSONString(map));
//                }*/
//            }
//            int sizeState = allChangeGoodsAboutStatusMap == null ? 0:allChangeGoodsAboutStatusMap.size();
//            if(sizeState>0){
//                log.info("该酒店存在房态房态需要推送酒店={},{}",hotelId,timestamp);
//                log.info("///////////////////////主动查询-美团接口-校验酒店产品 {} 存在数据完成该酒店所有产品所有日期房态校对hotelId={},allChangeGoodsAboutStatusMap={}",timestamp,hotelId,allChangeGoodsAboutStatusMap);
//                //异步线程   更新保存  房态 库表数据  多个产品 多组一个月日期房态
//                //meituanSaveUpdateGoodsStatusTableTask.executeSaveUpdateGoodsStatusTable(allChangeGoodsAboutStatusMap,hotelId);  2020-10-12 暂时注释
//                //version 20200828 构建携程接口参数，保存变化的数据到缓存队列，
//                buildStatusChangeDataToSwitchsRedis(hotelId,valiSaleAllGoodsMap,allChangeGoodsAboutStatusMap, MtGoodsEnums.goodsChangeSource.PULL_STATUS.getCode(),thisHotelAllGoodsDateNotSaleMap,compare,thisTimestampApi);//allChangeGoodsAboutDatePriceMap,allChangeGoodsAboutStatusMap);
//            }else{
//                log.info("该酒店没有房态房态需要推送酒店={},{}",hotelId,timestamp);
////                if(null != redisTemplate.opsForValue().get(CallbackConstants.REDIS_KEY_NOT_CHECK_FOR_STATUS) || null != redisTemplate.opsForValue().get(CallbackConstants.REDIS_KEY_NOT_CHECK_FOR_ALL)){
////                    //存到库表
////                    try{
////                        MtHotelGoodsNotRepeat repeat = new MtHotelGoodsNotRepeat();
////                        repeat.setId(hotelId.substring(0,3)+StringUtil.getUUID());
////                        repeat.setTimestamp(null);
////                        repeat.setMtHotelId(hotelId);
////                        repeat.setCreateTime(new Date());
////                        repeat.setState(1);//没有推送的酒店
////                        repeat.setSource(1);//1 房态
////                        mtHotelGoodsNotRepeatMapper.insert(repeat);
////                    }catch (Exception e){
////                        log.error("保存失败日志酒店={}，时间戳={}，该酒店没有房态房态需要推送酒店日志失败：{}",hotelId,e.getMessage());
////                        e.printStackTrace();
////                    }
////                }
//
//            }
//
//        }
//
//
//
//
//        //2、调用美团接口，库存接口（上送时间段但是数据只返回一条）
//        //库存和房态数据条数不一定是对等的，可能存在库存接口失败比如查询时间段内没有库存信息接口返回失败。价格map不是30条过滤了是否价格变动，库存和房态不需要判断是否变动携程接口要求
//
//        /*String startDateRoomInv = DateUtil.formatDate(new Date(),"yyyy-MM-dd");//开始时间从今日开始   从过去时间取差库存 一般会返回 remain=0
//
//        Map<String,Integer> allValiSaleGoodsAboutValiInventoryMap  = new HashMap<>();//key = goodsId,  value = 库存  0 无  1  有
//        if(null != allChangeGoodsAboutStatusMap && allChangeGoodsAboutStatusMap.size()>0){//遍历已过滤了的房态map，根据房态map获取goodsId
//            Map<String,String> dingContentGoodsStatusInven = new HashMap();
//            for (Map.Entry goods:allChangeGoodsAboutStatusMap.entrySet()){
//                String goodsId = (String)goods.getKey();
//                String existSale = (String)redisService.get(String.valueOf(hotelId)+"_"+String.valueOf(goodsId));//为了获取roomId 获取缓存的售卖房型信息
//                if(null  != existSale){//
//                    String mtRoomId = existSale.split("_")[0];
//                    Result<Object> invenReponse = mtHotelGoodsService.getMtHotelGoodsInventory(Integer.valueOf(goodsId),Integer.valueOf(mtRoomId),startDateRoomInv,endDate);//上送开始时间和结束时间一个月的跨度 当前无法每天查询库存调用接口太频繁，该库存字段暂时没意义，实际推送给携程根据房态是否可预订来判断有没有库存
//                    if(null != invenReponse && invenReponse.getCode() == CommonConstants.SUCCESS && null != invenReponse.getData()){
//                        if(null != invenReponse.getMsg() && invenReponse.getMsg().toString().contains("invChange")){
//                            //dingContent.put("产品"+Integer.valueOf(goodsId)+" 房型"+mtRoomId,"一个月库存信息:"+ invenReponse.getMsg());//内容太长
//                            dingContentGoodsStatusInven.put(goodsId,mtRoomId);//当前都是属于一个酒店的房态信息，定时器会判断酒店构建数据ding发送
//                        }
//
//                        *//**  当时间跨度达到半年或一年以上存在接口返回失败
//         * {
//         *     "code": 1002,
//         *     "msg": "inventory null",
//         *     "data": null
//         * }
//         *//*
//                        MtHotelGoodsInventoryVo oneGoodsInvenInMonth = (MtHotelGoodsInventoryVo)invenReponse.getData();
//                        allValiSaleGoodsAboutValiInventoryMap.put(goodsId,oneGoodsInvenInMonth.getRemain());
//                        valiSaleAllGoodsMap.put(Integer.valueOf(goodsId),Integer.valueOf(goodsId));
//                    }
//                }
//            }
//            if(!ObjectUtils.isEmpty(dingContentGoodsStatusInven)){
//                //SendUtils.dingMsg("【主动JOB-房态发生变动】",GsonUtils.GsonString(dingContent),2);
//            }
//        }
//        int invSize = allValiSaleGoodsAboutValiInventoryMap == null ? 0:allValiSaleGoodsAboutValiInventoryMap.size();
//        log.info("///////////////////////主动查询-美团接口-校验酒店产品 getChangeMonthGoodsIdsByOneHotelId - allValiSaleGoodsAboutValiInventoryMap  {} - size : {}",hotelId,invSize);*/
//
//
//    }
//
//    private void buildStatusChangeDataToSwitchsRedis(String hotelId,Map<Integer,Integer> valiSaleAllGoodsMap,
//                                                     Map<String, MtHotelGoodsStatusDetailVo> allChangeGoodsAboutStatusMap,
//                                                     Integer source,Map<String,Map<String,String>> thisHotelAllGoodsDateNotSaleMap,Integer compare,String thisTimestampApi) {
//        //log.info("{} 进入方法开始执行buildStatusChangeDataToSwitchsRedis,push到缓存队列存在变动的房态产品，" +
//               //"主动变动房态入参有效产品集合为{},主动变动房态入参酒店为{},主动变动房态入参房态数据为{} ",timestamp,GsonUtils.GsonString(valiSaleAllGoodsMap),hotelId,GsonUtils.GsonString(allChangeGoodsAboutStatusMap));
//        List<RoomDataEntityVO> oneHotelAboutAllChangeGoodsVoSwitchsApi = new ArrayList<>();//酒店vo-所有变化产品listVo，酒店vo所有变化了的产品信息
//        BatchPushRoomDatasVo oneHotelVoSwitchsApi = null;//构建携程接口酒店vo
//
//        for (Map.Entry entry:valiSaleAllGoodsMap.entrySet()){
//            //遍历所有变化的产品
//            String goodsId = String.valueOf(entry.getKey());
//
//            //重构携程接口对象，构建一个产品vo，加入产品volist
//            RoomDataEntityVO oneChangeGoodsSwitchsApi = new RoomDataEntityVO();
//            oneChangeGoodsSwitchsApi.setGoodId(Integer.valueOf(goodsId));//当前产品id
//
//            //构建接口数据结构：一个产品的房态 数据结构
//            List<RoomStatusInventory> thisGoodsRoomStatusInventoryList = null;
//            MtHotelGoodsStatusDetailVo thisGoodsDateStatusData = allChangeGoodsAboutStatusMap.get(goodsId);
//            if(null != thisGoodsDateStatusData){
//                thisGoodsRoomStatusInventoryList = new ArrayList<>();
//                for (MtHotelGoodsStatusDetailStateVo status:thisGoodsDateStatusData.getGoodsStatuses()){
//                    RoomStatusInventory roomStatusInventory = new RoomStatusInventory();
//                    roomStatusInventory.setDate(status.getDate());
//                    roomStatusInventory.setGoodStatus(status.getStatus());
//                    thisGoodsRoomStatusInventoryList.add(roomStatusInventory);
//                }
//            }
//            oneChangeGoodsSwitchsApi.setGoodInventory(1);//allValiSaleGoodsAboutValiInventoryMap.get(goodsId));//当前产品的库存（0或1表示未来一个月有或无）
//            oneChangeGoodsSwitchsApi.setRoomStatusInventorys(thisGoodsRoomStatusInventoryList);//当前产品的房态集合（一个月）
//
//            oneHotelAboutAllChangeGoodsVoSwitchsApi.add(oneChangeGoodsSwitchsApi);//追加入携程vo酒店所有变化产品集合中
//        }
//        //最终返回酒店vo
//        if(null != oneHotelAboutAllChangeGoodsVoSwitchsApi && oneHotelAboutAllChangeGoodsVoSwitchsApi.size()>0){
//
////            MtNotifyShortLog mtNotifyShortLog = new MtNotifyShortLog();
////            mtNotifyShortLog.setId(StringUtil.getUUID());
////            mtNotifyShortLog.setTimestamp(thisTimestampApi);
////            mtNotifyShortLog.setCreateTime(new Date());
////            mtNotifyShortLog.setMtHotelId(hotelId);
////            mtNotifyShortLog.setSwHotelId(null);
////            mtNotifyShortLog.setOprate(MtGoodsEnums.goodsChangeType.PUSH.getCode());//push
////            mtNotifyShortLog.setSource(source);//10 异步价格  11 主动查询价格 20 异步房态  21 主动查询房态 30 携程推送成功数据
////            try{
////                mtNotifyShortLogMapper.insert(mtNotifyShortLog);
////            }catch (Exception e){
////                log.error("主动查询有变化房态数据保存日志mtNotifyShortLog异常{},{}",GsonUtils.GsonString(mtNotifyShortLog),e.getMessage());
////                e.printStackTrace();
////            }
//
//            oneHotelVoSwitchsApi = new BatchPushRoomDatasVo();
//            oneHotelVoSwitchsApi.setMtHotelId(Integer.valueOf(hotelId));
//            oneHotelVoSwitchsApi.setCompare(compare);
//            oneHotelVoSwitchsApi.setTimestamp(thisTimestampApi);
//            oneHotelVoSwitchsApi.setRoomDataEntityList(oneHotelAboutAllChangeGoodsVoSwitchsApi);
//            //log.info("{} push到缓存队列存在变动的房态产品，主动变动房态时间戳为{},主动变动房态酒店为{},主动变动房态推送数据为{} ",timestamp,thisTimestampApi,hotelId,GsonUtils.GsonString(oneHotelVoSwitchsApi));
//            //oneHotelVoSwitchsApi json字符串 加入缓存队列中
//            pushQueueRpPriceAndStatus(oneHotelVoSwitchsApi);
//
//            log.info("statusjoboneHotelVoSwitchsApi房态 : "+ GsonUtils.GsonString(oneHotelVoSwitchsApi));
//
////            if(null != thisHotelAllGoodsDateNotSaleMap && thisHotelAllGoodsDateNotSaleMap.size()>0){
////                //SendUtils.dingMsgNotLog(DateUtil.getCurrTime()+" 不可预订 ","时间戳："+thisTimestampApi+" 酒店id："+hotelId+" 产品："+GsonUtils.GsonString(thisHotelAllGoodsDateNotSaleMap),MessageEnums.genre.MT_ROOM_FULL.getCode(),restTemplate);
////            }
//
////            if(null == redisTemplate.opsForValue().get(CallbackConstants.REDIS_KEY_NOT_CHECK_FOR_STATUS) && null == redisTemplate.opsForValue().get(CallbackConstants.REDIS_KEY_NOT_CHECK_FOR_ALL)){
////                SendUtils.dingMsgNotLog("【很好办-主动single'房态'定时器-变更推送】",hotel.base.oversea.utils.DateUtil.getCurrTime()+"：时间戳="+oneHotelVoSwitchsApi.getTimestamp()+"，酒店id："+oneHotelVoSwitchsApi.getMtHotelId()+",内容："+ GsonUtils.GsonString(oneHotelVoSwitchsApi.getRoomDataEntityList()),2,restTemplate);;
////                // SendUtils.dingMsgNotLog("【很好办-24小时查询价格+房态RP-变更】",hotel.base.oversea.utils.DateUtil.getCurrTime()+"：时间戳="+oneHotelVoSwitchsApi.getTimestamp()+"，酒店id："+oneHotelVoSwitchsApi.getMtHotelId()+",内容："+ GsonUtils.GsonString(oneHotelVoSwitchsApi.getRoomDataEntityList()),2,restTemplate);
////            }else{
////                //SendUtils.dingMsgNotLog("【很好办-主动single'房态'定时器-变更推送】",hotel.base.oversea.utils.DateUtil.getCurrTime()+"：时间戳="+oneHotelVoSwitchsApi.getTimestamp()+"，酒店id："+oneHotelVoSwitchsApi.getMtHotelId()+",内容：当前为程序不做重复判断，独立房态定时器轮询上架酒店直推产品房态给携程，未来30天",2,restTemplate);
////                log.info("【很好办-主动single'房态'定时器-变更推送】",hotel.base.oversea.utils.DateUtil.getCurrTime()+"：时间戳="+oneHotelVoSwitchsApi.getTimestamp()+"，酒店id："+oneHotelVoSwitchsApi.getMtHotelId()+",内容：当前为程序不做重复判断，独立房态定时器轮询上架酒店直推产品房态给携程，未来30天");
////                //存到库表
////                try{
////                    MtHotelGoodsNotRepeat repeat = new MtHotelGoodsNotRepeat();
////                    repeat.setId(hotelId.substring(0,3)+StringUtil.getUUID());
////                    repeat.setTimestamp(thisTimestampApi);
////                    repeat.setMtHotelId(hotelId);
////                    repeat.setState(0);
////                    repeat.setCreateTime(new Date());
////                    repeat.setSource(1);//1 房态
////                    mtHotelGoodsNotRepeatMapper.insert(repeat);
////                }catch (Exception e){
////                    log.error("保存失败日志酒店={}，时间戳={}，313房态酒店保存不过滤重复酒店日志失败：{}",hotelId,thisTimestampApi,e.getMessage());
////                    e.printStackTrace();
////                }
////
////            }
//        }
//    }
//    public void pushQueueRpPriceAndStatus(BatchPushRoomDatasVo oneHotelVoSwitchsApi){
//
//        //1、加入队列，推给携程
//        redisTemplate.opsForList().leftPush(MeituanConstants.REDIS_CHANGE_GOODS_DATA_MANY_HOTEL, GsonUtils.GsonString(oneHotelVoSwitchsApi));
//
//    }
//
//}
